package main

import (
	"gin_study_blog/common"
	"gin_study_blog/core"
	_ "gin_study_blog/docs"
	"gin_study_blog/flag"
	"gin_study_blog/routers"
)

// @title API文档
// @version 1.0
// @description blog_ycc API文档
// @host 127.0.0.1:8080
// @BasePath /
func main() {
	// 读取配置文件
	core.YamlInitConfig()
	// 初始化日志
	common.Log = core.InitLogger()
	// 连接数据库
	common.DB = core.InitGorm()
	// 连接 es
	common.EsClient = core.EsConnect()
	// redis 初始化
	common.Redis = core.ConnectRedis()

	// 命令行参数绑定
	option := flag.Parse()
	if flag.IsWebStop(option) {
		flag.SwitchOption(option)
		return
	}

	// 服务启动
	addr := common.Config.System.Addr()
	common.Log.Infof("服务运行在: %s", addr)

	// 路由部分
	r := routers.Router()
	err := r.Run(addr)
	if err != nil {
		common.Log.Fatalf(err.Error())
	}
}
